package leetcode.题库.字符串;

/**
 * description:
 * 回文子串
 *
 * @author 颜真明
 * @date 2023/6/6  16:40
 */

/**
 * 描述
 *
 * 给你一个字符串 s ，请你统计并返回这个字符串中 回文子串 的数目。
 *
 * 回文字符串 是正着读和倒过来读一样的字符串。
 *
 * 子字符串 是字符串中的由连续字符组成的一个序列。
 *
 * 具有不同开始位置或结束位置的子串，即使是由相同的字符组成，也会被视作不同的子串。
 *
 */

/**
 * 思路
 *
 * 对称法
 *
 */
public class Solution647 {

    public static int res = 0;

    public static void main(String[] args) {
        System.out.println(countSubstrings("fdsklf"));
    }

    public static int countSubstrings(String s) {
        for (int i = 0; i < s.length(); i++) {
            count(s, i, i);
            count(s, i, i+1);
        }
        return res;
    }

    public static void count(String s, int start, int end) {
        if (start < 0 || end >= s.length()) {
            return;
        }
        while (start >= 0 && end < s.length()) {
            if (s.charAt(start) == s.charAt(end)){
                res++;
            } else {
                break;
            }
            start--;
            end++;
        }
    }

}
